package org.spiniper.im.data.model;

import java.io.Serializable;
import java.util.Date;

import org.spiniper.im.data.model.enums.UsersStatus;

/**
 * 用户，系统中所有用户，我们将任何一个系统中存在的角色都称为用户，
 * 用户可能包括普通的使用用户，以及群，社团，组织，公司以及内置的系统用户(用于发生提醒)等等
 * 具体的用户，则有具体的实现来完成
 * @author spiniper
 *
 */
public interface Users extends Serializable {
	
	/**
	 * 用户在系统内的唯一标识
	 * @return 用户标识
	 */
	String getId();
	
	/**
	 * 别名，纯粹因为现实所需要的名称，可以任意的输入，且可以相同
	 * @return
	 */
	String nickName();
	
	/**
	 * 创建时间
	 * @return 用户的创建时间
	 */
	Date createTime();
	
	/**
	 * 用户状态
	 * @return 冻结或者激活，判定能否登录。
	 */
	UsersStatus getStatus();
}
